package VCTypeTool

//翻转字符串
func ReverseString(s string) string {
	// 将字符串转换为字节数组
	bytes := []byte(s)

	// 使用两个指针交换首尾元素的位置
	left := 0
	right := len(bytes) - 1
	for left < right {
		bytes[left], bytes[right] = bytes[right], bytes[left]
		left++
		right--
	}

	// 返回翻转后的字符串
	return string(bytes)
}

// 将字符串转换为 SHA-256 哈希并返回形式的数值 , mod是余的范围
func StringUseSha256GroupByInt64(input string, mod int64) (int64, error) {
	modValue := big.NewInt(mod) // 取模的数值，例如 1000
	hasher := sha256.New()
	hasher.Write([]byte(input))
	hashBytes := hasher.Sum(nil)
	// 执行取余操作
	result := new(big.Int)
	resultString := result.Mod(new(big.Int).SetBytes(hashBytes), modValue).String()
	resultInt64, err := strconv.ParseInt(resultString, 10, 64)
	return resultInt64, err
}
